home *** CD-ROM | disk | FTP | other *** search
Text File | 2002-03-13 | 50.1 KB | 1,214 lines |
- "----------------------------------------------------------------------"
- " I would prefer to have only one large Dictionary of all AmigaDOS "
- " flags & tags, but since Little Smalltalk only uses 8-bit bytecodes, "
- " a Dictionary is limitied to 256 entries, so I had to divide the flags"
- " into several smaller dictionaries. You can use this one Class to "
- " reference ALL the components using the getXX: methods (jts). "
- " This Class is a Singleton-class. "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- "----------------------------------------------------------------------"
-
- Class DosSystem :Dictionary
- ! uniqueInstance dateTime aslFlags exAllFlags dosFlags dosErrors dosPackets
- dosFHFlags dosNotify dosRDArgs dosRecord dosStdio dosVar dosHunks
- !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- dateTime <- DosDateTimeFlags new.
- aslFlags <- DosASLFlags new.
- exAllFlags <- DosExAllFlags new.
- dosFlags <- DosFlags new.
- dosErrors <- DosErrors new.
- dosPackets <- DosPackets new.
- dosFHFlags <- DosFH new.
- dosNotify <- DosNotifyFlags new.
- dosRDArgs <- DosRDArgsFlags new.
- dosRecord <- DosRecordFlags new.
- dosStdio <- DosStdIOFlags new.
- dosVar <- DosVarFlags new.
- dosHunks <- DosHunks new.
- ].
-
- ^ self "or ^ uniqueInstance??"
- |
- getDateTime: indexSymbol
- ^ dateTime at: indexSymbol
- |
- getASLFlag: indexSymbol
- ^ aslFlags at: indexSymbol
- |
- getExAllFlag: indexSymbol
- ^ exAllFlags at: indexSymbol
- |
- getDosFlag: indexSymbol
- ^ dosFlags at: indexSymbol
- |
- getDosError: indexSymbol
- ^ dosErrors at: indexSymbol
- |
- getDosPacket: indexSymbol
- ^ dosPackets at: indexSymbol
- |
- getDosFHFlag: indexSymbol
- ^ dosFHFlags at: indexSymbol
- |
- getDosNotify: indexSymbol
- ^ dosNotify at: indexSymbol
- |
- getDosRDArg: indexSymbol
- ^ dosRDArgs at: indexSymbol
- |
- getDosRecord: indexSymbol
- ^ dosRecord at: indexSymbol
- |
- getDosStdio: indexSymbol
- ^ dosStdio at: indexSymbol
- |
- getDosVar: indexSymbol
- ^ dosVar at: indexSymbol
- |
- getDosHunk: indexSymbol
- ^ dosHunks at: indexSymbol
- ]
-
- "----------------------------------------------------------------------"
- " DosASLFlags Class implements flags & tags used by the AmigaDOS "
- " functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosASLFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/DosASL.h flags: "
-
- self at: #APF_DOWILD put: 1. " User option ALL "
- self at: #APF_ITSWILD put: 2. " Set by MatchFirst, used by MatchNext "
- self at: #APF_DODIR put: 4. " Set if a Dir node should be entered "
- self at: #APF_DIDDIR put: 8. " Bit is SET for an 'expired' dir node "
- self at: #APF_NOMEMERR put: 16. " Set on memory error "
- self at: #APF_DODOT put: 32. " If set, allow conv'n of '.' toCurrentDir "
- self at: #APF_DirChanged put: 64. " an_Lock changed since last MatchNext call "
- self at: #APF_FollowHLinks put: 128. " follow hardlinks on a DODIR. "
-
- self at: #DDF_PatternBit put: 1.
- self at: #DDF_ExaminedBit put: 2.
- self at: #DDF_Completed put: 4.
- self at: #DDF_AllBit put: 8.
- self at: #DDF_Single put: 16.
-
- " Constants used by wildcard routines, these are the pre-parsed tokens
- * referred to by pattern match. It is not necessary for you to do
- * anything about these, matchFirst: & matchNext handle all these for you.
- "
- self at: #P_ANY put: 16r80. " Token for '*' or '#? "
- self at: #P_SINGLE put: 16r81. " Token for '?' "
- self at: #P_ORSTART put: 16r82. " Token for '(' "
- self at: #P_ORNEXT put: 16r83. " Token for '|' "
- self at: #P_OREND put: 16r84. " Token for ')' "
- self at: #P_NOT put: 16r85. " Token for '~' "
- self at: #P_NOTEND put: 16r86.
- self at: #P_NOTCLASS put: 16r87. " Token for '^' "
- self at: #P_CLASS put: 16r88. " Token for '[]' "
- self at: #P_REPBEG put: 16r89. " Token for '[' "
- self at: #P_REPEND put: 16r8A. " Token for ']' "
- self at: #P_STOP put: 16r8B. " token to force end of evaluation "
-
- " Values for an_Status, NOTE: These are the actual bit numbers: "
-
- self at: #COMPLEX_BIT put: 1. " Parsing complex pattern "
- self at: #EXAMINE_BIT put: 2. " Searching directory "
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
-
- "----------------------------------------------------------------------"
- " DosExAllFlags Class implements exAll flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosExAllFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/ExAll.h flags: "
-
- " NOTE: V37 dos.library, when doing ExAll() emulation, and V37 filesystems
- * will return an error if passed ED_OWNER. If you get ERROR_BAD_NUMBER,
- * retry with ED_COMMENT to get everything but owner info. All filesystems
- * supporting ExAll() must support through ED_COMMENT, and must check Type
- * and return ERROR_BAD_NUMBER if they don't support the type.
- "
-
- " values that can be passed for what data you want from ExAll()
- * each higher value includes those below it (numerically)
- * you MUST choose one of these values
- "
-
- self at: #ED_NAME put: 1.
- self at: #ED_TYPE put: 2. " Name and Type "
- self at: #ED_SIZE put: 3. " Name, Type & Size "
- self at: #ED_PROTECTION put: 4. " Name, Type, Size & Protection bits "
- self at: #ED_DATE put: 5.
- self at: #ED_COMMENT put: 6.
- self at: #ED_OWNER put: 7. " The whole enchilada! "
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosFlags Class implements Dos & DosExtens flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateInitializeDictionary "Too big to be in a Block:"
-
- " dos/dos.h: flags: "
-
- self at: #DOSFALSE put: 0.
- self at: #DOSTRUE put: -1.
-
- self at: #MODE_OLDFILE put: 1005. " Open existing file as read/write "
- self at: #MODE_NEWFILE put: 1006. " Open freshly created file read/write "
- self at: #MODE_READWRITE put: 1004. " Open old file w/shared lock "
-
- " Relative position to seekFile: "
-
- self at: #OFFSET_BEGINNING put: -1. " relative to Beginning Of File "
- self at: #OFFSET_CURRENT put: 0. " relative to Current file position "
- self at: #OFFSET_END put: 1. " relative to End Of File "
-
- " Passed as type to lock: "
-
- self at: #SHARED_LOCK put: -2. " File is readable by others "
- self at: #ACCESS_READ put: -2. " Synonym "
- self at: #EXCLUSIVE_LOCK put: -1. " No other access allowed "
- self at: #ACCESS_WRITE put: -1. " Synonym "
-
- self at: #TICKS_PER_SECOND put: 50. " Number of ticks in one second "
-
- self at: #FIBF_OTR_READ put: 16r8000. " Other: file is readable "
- self at: #FIBF_OTR_WRITE put: 16r4000. " Other: file is writable "
- self at: #FIBF_OTR_EXECUTE put: 16r2000. " Other: file is executable "
- self at: #FIBF_OTR_DELETE put: 16r1000. " Other: prevent file from being deleted "
- self at: #FIBF_GRP_READ put: 16r800. " Group: file is readable "
- self at: #FIBF_GRP_WRITE put: 16r400. " Group: file is writable "
- self at: #FIBF_GRP_EXECUTE put: 16r200. " Group: file is executable "
- self at: #FIBF_GRP_DELETE put: 16r100. " Group: prevent file from being deleted "
- self at: #FIBF_HIDDEN put: 16r80. " file is hidden from casual scrutiny "
- self at: #FIBF_SCRIPT put: 16r40. " file is a script (execute) file "
- self at: #FIBF_PURE put: 16r20. " program is reentrant and rexecutable "
- self at: #FIBF_ARCHIVE put: 16r10. " cleared whenever file is changed "
- self at: #FIBF_READ put: 8. " File is readable "
- self at: #FIBF_WRITE put: 4. " File is writeable "
- self at: #FIBF_EXECUTE put: 2. " Executable by a Shell "
- self at: #FIBF_DELETE put: 1. " prevent file from being deleted "
-
- self at: #FAULT_MAX put: 82. " Maximum length of falut string "
-
- " ID stands for InfoData, Disk States: "
-
- self at: #ID_WRITE_PROTECTED put: 80. " Disk is write protected "
- self at: #ID_VALIDATING put: 81. " Disk is currently being validated "
- self at: #ID_VALIDATED put: 82. " Disk is consistent and writeable "
-
- " Disk types: "
-
- self at: #ID_NO_DISK_PRESENT put: -1.
- self at: #ID_UNREADABLE_DISK put: 16r42414400. " 'BAD\0' "
- self at: #ID_DOS_DISK put: 16r444F5300. " 'DOS\0' "
- self at: #ID_FFS_DISK put: 16r444F5301. " 'DOS\1' "
- self at: #ID_INTER_DOS_DISK put: 16r444F5302. " 'DOS\2' "
- self at: #ID_INTER_FFS_DISK put: 16r444F5303. " 'DOS\3' "
- self at: #ID_FASTDIR_DOS_DISK put: 16r444F5304. " 'DOS\4' "
- self at: #ID_FASTDIR_FFS_DISK put: 16r444F5305. " 'DOS\5' "
- self at: #ID_NOT_REALLY_DOS put: 16r4E444F53. " 'NDOS' "
- self at: #ID_KICKSTART_DISK put: 16r4B49434B. " 'KICK' "
- self at: #ID_MSDOS_DISK put: 16r4D534400. " 'MSD\0' "
-
- " setSignal( 0, 0 ) & SIGBREAKF_CTRL_C != false, then cleanup_and_exit() "
-
- self at: #SIGBREAKF_CTRL_C put: 16r1000.
- self at: #SIGBREAKF_CTRL_D put: 16r2000.
- self at: #SIGBREAKF_CTRL_E put: 16r4000.
- self at: #SIGBREAKF_CTRL_F put: 16r8000.
-
- " Values returned by sameLock: "
-
- self at: #LOCK_DIFFERENT put: -1.
- self at: #LOCK_SAME put: 0.
- self at: #LOCK_SAME_VOLUME put: 1. " locks are on same volume "
-
- " types for changeMode: "
-
- self at: #CHANGE_LOCK put: 0.
- self at: #CHANGE_FH put: 1.
-
- " Values for makeLink: "
-
- self at: #LINK_HARD put: 0.
- self at: #LINK_SOFT put: 1. " softlinks are not fully supported yet "
-
- " values returned by readItem: "
-
- self at: #ITEM_EQUAL put: -2. " '=' Symbol "
- self at: #ITEM_ERROR put: -1. " error "
- self at: #ITEM_NOTHING put: 0. " *N, ;, endstreamch "
- self at: #ITEM_UNQUOTED put: 1. " unquoted item "
- self at: #ITEM_QUOTED put: 2. " quoted item "
-
- " types for allocDosObject & freeDosObject: "
-
- self at: #DOS_FILEHANDLE put: 0. " few people should use this "
- self at: #DOS_EXALLCONTROL put: 1. " Must be used to allocate exAllControl! "
- self at: #DOS_FIB put: 2. " For FileInfoBlock "
- self at: #DOS_STDPKT put: 3. " for doing packet-level I/O "
- self at: #DOS_CLI put: 4. " for shell-writers, etc "
- self at: #DOS_RDARGS put: 5. " for ReadArgs if you pass it in "
-
- " dos/DosExtens.h flags: "
-
- " Flags for process->pr_Flags "
-
- self at: #PRF_FREESEGLIST put: 1.
- self at: #PRF_FREECURRDIR put: 2.
- self at: #PRF_FREECLI put: 4.
- self at: #PRF_CLOSEINPUT put: 8.
- self at: #PRF_CLOSEOUTPUT put: 16.
- self at: #PRF_FREEARGS put: 32.
-
- self at: #RNF_WILDSTAR put: 16r1000000. " for rootNode"
-
- " Segment use codes: "
-
- self at: #CMD_SYSTEM put: -1.
- self at: #CMD_INTERNAL put: -2.
- self at: #CMD_DISABLED put: -999.
-
- " definitions for dl_Type "
-
- self at: #DLT_DEVICE put: 0.
- self at: #DLT_DIRECTORY put: 1. " assign "
- self at: #DLT_VOLUME put: 2.
- self at: #DLT_LATE put: 3. " late-binding assign "
- self at: #DLT_NONBINDING put: 4. " non-binding assign "
- self at: #DLT_PRIVATE put: -1. " for internal use only "
-
- " definitions for (DevProc structure) dvp_Flags "
-
- self at: #DVPF_UNLOCK put: 1. " PRIVATE! "
- self at: #DVPF_ASSIGN put: 2.
-
- " Flags to be passed to lockDosList:, etc "
-
- self at: #LDF_DEVICES put: 4.
- self at: #LDF_VOLUMES put: 8.
- self at: #LDF_ASSIGNS put: 16.
- self at: #LDF_ENTRY put: 32.
- self at: #LDF_DELETE put: 64.
-
- " you MUST specify one of LDF_READ or LDF_WRITE "
- self at: #LDF_READ put: 1.
- self at: #LDF_WRITE put: 2.
-
- " actually all but LDF_ENTRY (which is used for internal locking) "
-
- self at: #LDF_ALL put: 28. "LDF_DEVICES+LDF_VOLUMES+LDF_ASSIGNS"
-
- " error report types for ErrorReport() "
-
- self at: #REPORT_STREAM put: 0. " a stream "
- self at: #REPORT_TASK put: 1. " a process - unused "
- self at: #REPORT_LOCK put: 2. " a lock "
- self at: #REPORT_VOLUME put: 3. " a volume node "
- self at: #REPORT_INSERT put: 4. " please insert volume "
-
- " types for initial packets to shells from run/newcli/execute/system. "
- " For shell-writers only "
-
- self at: #RUN_EXECUTE put: -1.
- self at: #RUN_SYSTEM put: -2.
- self at: #RUN_SYSTEM_ASYNCH put: -3.
-
- " Types for fib_DirEntryType. NOTE that both USERDIR and ROOT are
- * directories, and that directory/file checks should use < 0 and >= 0.
- * This is not necessarily exhaustive! Some handlers may use other
- * values as needed, though < 0 and >= 0 should remain as supported as
- * possible.
- "
- self at: #ST_ROOT put: 1.
- self at: #ST_USERDIR put: 2.
- self at: #ST_SOFTLINK put: 3. " looks like dir, but may point to a file! "
- self at: #ST_LINKDIR put: 4. " hard link to dir "
- self at: #ST_FILE put: -3. " must be negative for FIB! "
- self at: #ST_LINKFILE put: -4. " hard link to file "
- self at: #ST_PIPEFILE put: -5. " for pipes that support ExamineFH "
-
- " definitions for the System() call "
-
- self at: #SYS_Input put: 16r80000021. " specifies the input filehandle "
- self at: #SYS_Output put: 16r80000022. " specifies the output filehandle "
- self at: #SYS_Asynch put: 16r80000023. " run asynch, close i/o on exit(!) "
- self at: #SYS_UserShell put: 16r80000024. " send to user shell instead of boot shell "
- self at: #SYS_CustomShell put: 16r80000025. " send to a specific shell (data is name) "
-
-
- " definitions for the createNewProc: method.
- * you MUST specify one of NP_Seglist or NP_Entry. All else is optional.
- "
- self at: #NP_Seglist put: 16r80001001. " seglist of code to run for the process "
- self at: #NP_FreeSeglist put: 16r80001002. " free seglist on exit - only valid for NP_Seglist. Default is TRUE. "
- self at: #NP_Entry put: 16r80001003. " entry point to run - mutually exclusive with NP_Seglist! "
- self at: #NP_Input put: 16r80001004. " filehandle - default is Open('NIL:'...) "
- self at: #NP_Output put: 16r80001005. " filehandle - default is Open('NIL:'...) "
- self at: #NP_CloseInput put: 16r80001006. " close input filehandle on exit default TRUE "
- self at: #NP_CloseOutput put: 16r80001007. " close output filehandle on exit default TRUE "
- self at: #NP_Error put: 16r80001008. " filehandle - default is Open('NIL:'...) "
- self at: #NP_CloseError put: 16r80001009. " close error filehandle on exit default TRUE "
- self at: #NP_CurrentDir put: 16r8000100A. " lock - default is parent's current dir "
- self at: #NP_StackSize put: 16r8000100B. " stacksize for process - default 4000 "
- self at: #NP_Name put: 16r8000100C. " name for process - default 'New Process'"
- self at: #NP_Priority put: 16r8000100D. " priority - default same as parent "
- self at: #NP_ConsoleTask put: 16r8000100E. " consoletask - default same as parent "
- self at: #NP_WindowPtr put: 16r8000100F. " window ptr - default is same as parent "
- self at: #NP_HomeDir put: 16r80001010. " home directory - default curr home dir "
- self at: #NP_CopyVars put: 16r80001011. " boolean to copy local vars-default TRUE "
- self at: #NP_Cli put: 16r80001012. " create cli structure - default FALSE "
- self at: #NP_Path put: 16r80001013. " path - default is copy of parents path "
- " only valid if a cli process! "
- self at: #NP_CommandName put: 16r80001014. " commandname - valid only for CLI "
- self at: #NP_Arguments put: 16r80001015. " cstring of arguments - passed with str in a0, length in d0. "
-
- self at: #NP_NotifyOnDeath put: 16r80001016. " notify parent on death - default FALSE "
- self at: #NP_Synchronous put: 16r80001017. " don't return until process finishes - "
- self at: #NP_ExitCode put: 16r80001018. " code to be called on process exit "
- self at: #NP_ExitData put: 16r80001019. " optional argument for NP_EndCode rtn - "
-
- " tags for AllocDosObject "
-
- self at: #ADO_FH_Mode put: 16r80002001. " for type DOS_FILEHANDLE only! "
- " sets up FH for mode specified.
- * This can make a big difference for buffered
- * files.
- "
- " The following are for DOS_CLI.
- * If you do not specify these, dos will use it's preferred values
- * which may change from release to release. The BPTRs to these
- * will be set up correctly for you. Everything will be zero,
- * except cli_FailLevel (10) and cli_Background (DOSTRUE).
- * NOTE: You may also use these 4 tags with CreateNewProc.
- "
- self at: #ADO_DirLen put: 16r80002002. " size in bytes for current dir buffer "
- self at: #ADO_CommNameLen put: 16r80002003. " size in bytes for command name buffer "
- self at: #ADO_CommFileLen put: 16r80002004. " size in bytes for command file buffer "
- self at: #ADO_PromptLen put: 16r80002005 " size in bytes for the prompt buffer "
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- self privateInitializeDictionary
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosErrors Class implements error number tags used by the AmigaDOS "
- " functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosErrors :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateInitializeDictionary "Too big to be in a Block:"
-
- " Special error codes for ErrorReport() "
-
- self at: #ABORT_DISK_ERROR put: 296. " Read/write error "
- self at: #ABORT_BUSY put: 288. " You MUST replace... "
-
- " Error codes from IoErr(), etc. "
-
- self at: #ERROR_NO_FREE_STORE put: 103.
- self at: #ERROR_TASK_TABLE_FULL put: 105.
- self at: #ERROR_BAD_TEMPLATE put: 114.
- self at: #ERROR_BAD_NUMBER put: 115.
- self at: #ERROR_REQUIRED_ARG_MISSING put: 116.
- self at: #ERROR_KEY_NEEDS_ARG put: 117.
- self at: #ERROR_TOO_MANY_ARGS put: 118.
- self at: #ERROR_UNMATCHED_QUOTES put: 119.
- self at: #ERROR_LINE_TOO_LONG put: 120.
- self at: #ERROR_FILE_NOT_OBJECT put: 121.
- self at: #ERROR_INVALID_RESIDENT_LIBRARY put: 122.
- self at: #ERROR_NO_DEFAULT_DIR put: 201.
- self at: #ERROR_OBJECT_IN_USE put: 202.
- self at: #ERROR_OBJECT_EXISTS put: 203.
- self at: #ERROR_DIR_NOT_FOUND put: 204.
- self at: #ERROR_OBJECT_NOT_FOUND put: 205.
- self at: #ERROR_BAD_STREAM_NAME put: 206.
- self at: #ERROR_OBJECT_TOO_LARGE put: 207.
- self at: #ERROR_ACTION_NOT_KNOWN put: 209.
- self at: #ERROR_INVALID_COMPONENT_NAME put: 210.
- self at: #ERROR_INVALID_LOCK put: 211.
- self at: #ERROR_OBJECT_WRONG_TYPE put: 212.
- self at: #ERROR_DISK_NOT_VALIDATED put: 213.
- self at: #ERROR_DISK_WRITE_PROTECTED put: 214.
- self at: #ERROR_RENAME_ACROSS_DEVICES put: 215.
- self at: #ERROR_DIRECTORY_NOT_EMPTY put: 216.
- self at: #ERROR_TOO_MANY_LEVELS put: 217.
- self at: #ERROR_DEVICE_NOT_MOUNTED put: 218.
- self at: #ERROR_SEEK_ERROR put: 219.
- self at: #ERROR_COMMENT_TOO_BIG put: 220.
- self at: #ERROR_DISK_FULL put: 221.
- self at: #ERROR_DELETE_PROTECTED put: 222.
- self at: #ERROR_WRITE_PROTECTED put: 223.
- self at: #ERROR_READ_PROTECTED put: 224.
- self at: #ERROR_NOT_A_DOS_DISK put: 225.
- self at: #ERROR_NO_DISK put: 226.
- self at: #ERROR_NO_MORE_ENTRIES put: 232.
- self at: #ERROR_IS_SOFT_LINK put: 233.
- self at: #ERROR_OBJECT_LINKED put: 234.
- self at: #ERROR_BAD_HUNK put: 235.
- self at: #ERROR_NOT_IMPLEMENTED put: 236.
- self at: #ERROR_RECORD_NOT_LOCKED put: 240.
- self at: #ERROR_LOCK_COLLISION put: 241.
- self at: #ERROR_LOCK_TIMEOUT put: 242.
- self at: #ERROR_UNLOCK_ERROR put: 243.
-
- " error codes 303-305 are defined in dosasl.h "
-
- " These are the return codes used by convention by AmigaDOS commands
- * See FAILAT and IF for relevance to EXECUTE (script) files
- "
- self at: #RETURN_OK put: 0. " No problems, success "
- self at: #RETURN_WARN put: 5. " A warning only "
- self at: #RETURN_ERROR put: 10. " Something wrong "
- self at: #RETURN_FAIL put: 20. " Complete or severe failure "
-
- " Returns from matchFirst: & matchNext:
- * You can also get dos error returns, such as ERROR_NO_MORE_ENTRIES,
- * these are in the dos.h file.
- "
- self at: #ERROR_BUFFER_OVERFLOW put: 303. " User or internal buffer overflow "
- self at: #ERROR_BREAK put: 304. " A break character was received "
- self at: #ERROR_NOT_EXECUTABLE put: 305 " A file has E bit cleared "
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- self privateInitializeDictionary
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosPackets Class implements flags & tags used by the AmigaDOS "
- " functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosPackets :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateInitializeDictionary "Too big to be in a Block:"
-
- " Packet types "
-
- self at: #ACTION_NIL put: 0.
- self at: #ACTION_STARTUP put: 0.
- self at: #ACTION_GET_BLOCK put: 2. " OBSOLETE "
- self at: #ACTION_SET_MAP put: 4.
- self at: #ACTION_DIE put: 5.
- self at: #ACTION_EVENT put: 6.
- self at: #ACTION_CURRENT_VOLUME put: 7.
- self at: #ACTION_LOCATE_OBJECT put: 8.
- self at: #ACTION_RENAME_DISK put: 9.
- self at: #ACTION_WRITE put: 16r57. " 'W' "
- self at: #ACTION_READ put: 16r52. " 'R' "
- self at: #ACTION_FREE_LOCK put: 15.
- self at: #ACTION_DELETE_OBJECT put: 16.
- self at: #ACTION_RENAME_OBJECT put: 17.
- self at: #ACTION_MORE_CACHE put: 18.
- self at: #ACTION_COPY_DIR put: 19.
- self at: #ACTION_WAIT_CHAR put: 20.
- self at: #ACTION_SET_PROTECT put: 21.
- self at: #ACTION_CREATE_DIR put: 22.
- self at: #ACTION_EXAMINE_OBJECT put: 23.
- self at: #ACTION_EXAMINE_NEXT put: 24.
- self at: #ACTION_DISK_INFO put: 25.
- self at: #ACTION_INFO put: 26.
- self at: #ACTION_FLUSH put: 27.
- self at: #ACTION_SET_COMMENT put: 28.
- self at: #ACTION_PARENT put: 29.
- self at: #ACTION_TIMER put: 30.
- self at: #ACTION_INHIBIT put: 31.
- self at: #ACTION_DISK_TYPE put: 32.
- self at: #ACTION_DISK_CHANGE put: 33.
- self at: #ACTION_SET_DATE put: 34.
-
- self at: #ACTION_SCREEN_MODE put: 994.
-
- self at: #ACTION_READ_RETURN put: 1001.
- self at: #ACTION_WRITE_RETURN put: 1002.
- self at: #ACTION_SEEK put: 1008.
- self at: #ACTION_FINDUPDATE put: 1004.
- self at: #ACTION_FINDINPUT put: 1005.
- self at: #ACTION_FINDOUTPUT put: 1006.
- self at: #ACTION_END put: 1007.
- self at: #ACTION_SET_FILE_SIZE put: 1022. " fast file system only in 1.3 "
- self at: #ACTION_WRITE_PROTECT put: 1023. " fast file system only in 1.3 "
-
- self at: #ACTION_SAME_LOCK put: 40.
- self at: #ACTION_CHANGE_SIGNAL put: 995.
- self at: #ACTION_FORMAT put: 1020.
- self at: #ACTION_MAKE_LINK put: 1021.
- self at: #ACTION_READ_LINK put: 1024.
- self at: #ACTION_FH_FROM_LOCK put: 1026.
- self at: #ACTION_IS_FILESYSTEM put: 1027.
- self at: #ACTION_CHANGE_MODE put: 1028.
- self at: #ACTION_COPY_DIR_FH put: 1030.
- self at: #ACTION_PARENT_FH put: 1031.
- self at: #ACTION_EXAMINE_ALL put: 1033.
- self at: #ACTION_EXAMINE_FH put: 1034.
-
- self at: #ACTION_LOCK_RECORD put: 2008.
- self at: #ACTION_FREE_RECORD put: 2009.
-
- self at: #ACTION_ADD_NOTIFY put: 4097.
- self at: #ACTION_REMOVE_NOTIFY put: 4098.
-
- " Added in V39: "
-
- self at: #ACTION_EXAMINE_ALL_END put: 1035.
- self at: #ACTION_SET_OWNER put: 1036.
-
- " Tell a file system to serialize the current volume. This is typically
- * done by changing the creation date of the disk. This packet does not
- * take any arguments.
- * NOTE: Be prepared to handle failure of this packet for V37 ROM
- * filesystems.
- "
- self at: #ACTION_SERIALIZE_DISK put: 4200
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- self privateInitializeDictionary
- ].
-
- ^ self "or ^ uniqueInstance??"
-
- ]
-
- "----------------------------------------------------------------------"
- " DosFH Class implements FileHandler flags & tags used by the AmigaDOS "
- " functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosFH :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/FileHandler.h flags: "
-
- " these are the offsets into the DiskEnvironment (struct DosEnvec) array
- * DE_TABLESIZE is set to the number of longwords in the table minus 1
- "
- self at: #DE_TABLESIZE put: 0. " minimum value is 11 (includes NumBuffers) "
- self at: #DE_SIZEBLOCK put: 1. " in longwords: standard value is 128 "
- self at: #DE_SECORG put: 2. " not used; must be 0 "
- self at: #DE_NUMHEADS put: 3. " # of heads (surfaces). drive specific "
- self at: #DE_SECSPERBLK put: 4. " not used; must be 1 "
- self at: #DE_BLKSPERTRACK put: 5. " blocks per track. drive specific "
- self at: #DE_RESERVEDBLKS put: 6. " unavailable blocks at start. usually 2 "
- self at: #DE_PREFAC put: 7. " not used; must be 0 "
- self at: #DE_INTERLEAVE put: 8. " usually 0 "
- self at: #DE_LOWCYL put: 9. " starting cylinder. typically 0 "
- self at: #DE_UPPERCYL put: 10. " max cylinder. drive specific "
- self at: #DE_NUMBUFFERS put: 11. " starting # of buffers. typically 5 "
- self at: #DE_BUFMEMTYPE put: 12. " type of mem to allocate for buffers.
- * 1 is public, 3 is chip, 5 is fast
- "
- self at: #DE_MAXTRANSFER put: 13. " Max number bytes to transfer at a time "
- self at: #DE_MASK put: 14. " Address Mask to block out certain memory "
- self at: #DE_BOOTPRI put: 15. " Boot priority for autoboot "
- self at: #DE_DOSTYPE put: 16. " string showing filesystem type "
- self at: #DE_BAUD put: 17. " Baud rate for serial handler "
- self at: #DE_CONTROL put: 18. " Control word for handler/filesystem "
- self at: #DE_BOOTBLOCKS put: 19. " Number of blocks containing boot code "
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosNotifyFlags Class implements Notify flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosNotifyFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/Notify.h flags: "
-
- " use of Class and code is discouraged for the time being - we might want to
- * change things
- "
- self at: #NOTIFY_CLASS put: 16r40000000. " NotifyMessage Class "
- self at: #NOTIFY_CODE put: 16r1234. " NotifyMessage Codes "
-
- " --- NotifyRequest Flags ------------------------------------------------ "
-
- self at: #NRF_SEND_MESSAGE put: 1.
- self at: #NRF_SEND_SIGNAL put: 2.
- self at: #NRF_WAIT_REPLY put: 8.
- self at: #NRF_NOTIFY_INITIAL put: 16.
-
- " do NOT set or remove NRF_MAGIC! Only for use by handlers! "
-
- self at: #NRF_MAGIC put: 16r80000000.
-
- " Flags reserved for private use by the handler: "
-
- self at: #NR_HANDLER_FLAGS put: 16rFFFF0000
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
-
- "----------------------------------------------------------------------"
- " DosRDArgsFlags Class implements RDArgs flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosRDArgsFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/RDArgs.h flags: "
-
- self at: #RDAF_STDIN put: 1. " Use 'STDIN' rather than 'COMMAND LINE' "
- self at: #RDAF_NOALLOC put: 2. " If set, do not allocate extra string spc"
- self at: #RDAF_NOPROMPT put: 4. " Disable reprompting for string input. "
-
- " Maximum number of template keywords which can be in a template passed
- * to ReadArgs(). IMPLEMENTOR NOTE - must be a multiple of 4.
- "
- self at: #MAX_TEMPLATE_ITEMS put: 100.
-
- " Maximum number of MULTIARG items returned by ReadArgs(), before
- * an ERROR_LINE_TOO_LONG. These two limitations are due to stack
- * usage. Applications should allow 'a lot' of stack to use ReadArgs().
- "
- self at: #MAX_MULTIARGS put: 128
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosRecordFlags Class implements Record flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosRecordFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/Record.h flags: "
-
- " Modes for lockRecord: & lockRecords: "
-
- self at: #REC_EXCLUSIVE put: 0.
- self at: #REC_EXCLUSIVE_IMMED put: 1.
- self at: #REC_SHARED put: 2.
- self at: #REC_SHARED_IMMED put: 3.
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosStdIOFlags Class implements stdio flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosStdIOFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/stdio.h flags: "
-
- " types for SetVBuf "
-
- self at: #BUF_LINE put: 0. " flush on \n, etc "
- self at: #BUF_FULL put: 1. " never flush except when needed "
- self at: #BUF_NONE put: 2. " no buffering "
-
- self at: #ENDSTREAMCH put: -1. " EOF return value "
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
-
- "----------------------------------------------------------------------"
- " DosVarFlags Class implements variable flags & tags used by the "
- " AmigaDOS functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosVarFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- " dos/Var.h flags: "
-
- " bit definitions for localVar->lv_Node.ln_Type: "
-
- self at: #LV_VAR put: 0. " an variable "
- self at: #LV_ALIAS put: 1. " an alias "
-
- " to be or'ed into type: "
-
- self at: #LVB_IGNORE put: 7. " ignore this entry on GetVar, etc "
- self at: #LVF_IGNORE put: 16r80.
-
- " definitions of flags passed to GetVar()/SetVar()/DeleteVar()
- * bit defs to be OR'ed with the type:
- * item will be treated as a single line of text unless BINARY_VAR is used
- "
- self at: #GVF_GLOBAL_ONLY put: 16r100.
- self at: #GVF_LOCAL_ONLY put: 16r200.
- self at: #GVF_BINARY_VAR put: 16r400.
- self at: #GVF_DONT_NULL_TERM put: 16r800. " only with GVF_BINARY_VAR "
-
- " this is only supported in >= V39 dos. V37 dos ignores this.
- * this causes SetVar to affect ENVARC: as well as ENV:.
- "
- self at: #GVF_SAVE_VAR put: 16r1000. " only with GVF_GLOBAL_ONLY "
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosDateTimeFlags Class implements flags & tags used by the AmigaDOS "
- " functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosDateTimeFlags :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- self at: #DTF_SUBST put: 16r1.
- self at: #DTF_FUTURE put: 16r2.
- self at: #FORMAT_DOS put: 16r0. " Date Formatting flags "
- self at: #FORMAT_INT put: 16r1.
- self at: #FORMAT_USA put: 16r2.
- self at: #FORMAT_CDN put: 16r3.
- self at: #FORMAT_MAX put: 16r3.
- self at: #LEN_DATSTRING put: 16r10.
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-
- "----------------------------------------------------------------------"
- " DosHunks Class implements hunk flags & tags used by the AmigaDOS "
- " functions for AmigaTalk. This class is a Singleton-class. "
- ""
- " Please read AmigaTalk:Help/ADos.guide for guidance on how to use the "
- " methods of this Class -- it's really getting hard to document each "
- " AmigaTalk Class in two or more places! "
- ""
- " ALL singleton classes MUST contain the following: "
- ""
- " the methods: isSingleton AND privateSetup AND "
- " uniqueInstance Class instance variable. "
- " ---------------------------------------------------------------------"
-
- Class DosHunks :Dictionary ! uniqueInstance !
- [
- isSingleton
- ^ true
- |
- privateNew ! newinstance !
- newinstance <- super new.
-
- ^ newinstance
- |
- new
- ^ (self privateSetup)
- |
- privateInitializeDictionary "Too big to be in a Block:"
-
- " dos/DosHunks.h flags: (NOT Currently used 31-Dec-2001)"
- " hunk types "
-
- self at: #HUNK_UNIT put: 999.
- self at: #HUNK_NAME put: 1000.
- self at: #HUNK_CODE put: 1001.
- self at: #HUNK_DATA put: 1002.
- self at: #HUNK_BSS put: 1003.
- self at: #HUNK_RELOC32 put: 1004.
- self at: #HUNK_ABSRELOC32 put: 1004.
- self at: #HUNK_RELOC16 put: 1005.
- self at: #HUNK_RELRELOC16 put: 1005.
- self at: #HUNK_RELOC8 put: 1006.
- self at: #HUNK_RELRELOC8 put: 1006.
- self at: #HUNK_EXT put: 1007.
- self at: #HUNK_SYMBOL put: 1008.
- self at: #HUNK_DEBUG put: 1009.
- self at: #HUNK_END put: 1010.
- self at: #HUNK_HEADER put: 1011.
- self at: #HUNK_OVERLAY put: 1013.
- self at: #HUNK_BREAK put: 1014.
- self at: #HUNK_DREL32 put: 1015.
- self at: #HUNK_DREL16 put: 1016.
- self at: #HUNK_DREL8 put: 1017.
- self at: #HUNK_LIB put: 1018.
- self at: #HUNK_INDEX put: 1019.
-
- " Note: V37 loadSeg: uses 1015 (HUNK_DREL32) by mistake. This will continue
- * to be supported in future versions, since HUNK_DREL32 is illegal in load files
- * anyways. Future versions will support both 1015 and 1020, though anything
- * that should be usable under V37 should use 1015.
- "
- self at: #HUNK_RELOC32SHORT put: 1020.
-
- " see ext_xxx below. New for V39 (note that loadSeg: only handles RELRELOC32)."
- self at: #HUNK_RELRELOC32 put: 1021.
- self at: #HUNK_ABSRELOC16 put: 1022.
-
- " Any hunks that have the HUNKB_ADVISORY bit set will be ignored if they
- * aren't understood. When ignored, they're treated like HUNK_DEBUG hunks.
- * NOTE: this handling of HUNKB_ADVISORY started as of V39 dos.library! If
- * loading such executables is attempted under <V39 dos, it will fail with a
- * bad hunk type.
- "
- self at: #HUNKF_ADVISORY put: 16r20000000.
- self at: #HUNKF_CHIP put: 16r40000000.
- self at: #HUNKF_FAST put: 16r80000000.
-
- " hunk_ext sub-types "
-
- self at: #EXT_SYMB put: 0. " symbol table "
- self at: #EXT_DEF put: 1. " relocatable definition "
- self at: #EXT_ABS put: 2. " Absolute definition "
- self at: #EXT_RES put: 3. " no longer supported "
- self at: #EXT_REF32 put: 129. " 32 bit absolute reference to symbol "
- self at: #EXT_ABSREF32 put: 129.
- self at: #EXT_COMMON put: 130. " 32 bit absolute reference to COMMON block "
- self at: #EXT_ABSCOMMON put: 130.
- self at: #EXT_REF16 put: 131. " 16 bit PC-relative reference to symbol "
- self at: #EXT_RELREF16 put: 131.
- self at: #EXT_REF8 put: 132. " 8 bit PC-relative reference to symbol "
- self at: #EXT_RELREF8 put: 132.
- self at: #EXT_DEXT32 put: 133. " 32 bit data relative reference "
- self at: #EXT_DEXT16 put: 134. " 16 bit data relative reference "
- self at: #EXT_DEXT8 put: 135. " 8 bit data relative reference "
-
- " These are to support some of the '020 and up modes that are rarely used "
- self at: #EXT_RELREF32 put: 136. " 32 bit PC-relative reference to symbol "
- self at: #EXT_RELCOMMON put: 137. " 32 bit PC-relative ref' to COMMON block "
-
- " for completeness... All 680x0's support this "
- self at: #EXT_ABSREF16 put: 138. " 16 bit absolute reference to symbol "
-
- " this only exists on '020's and above, in the (d8,An,Xn) address mode "
- self at: #EXT_ABSREF8 put: 139 " 8 bit absolute reference to symbol "
- |
- privateSetup
- (uniqueInstance isNil)
- ifTrue: [uniqueInstance <- self privateNew.
-
- self privateInitializeDictionary
- ].
-
- ^ self "or ^ uniqueInstance??"
- ]
-